#include "stdafx.h"
#define BOOST_TEST_MODULE test_bmock_expectation
#include <boost/test/auto_unit_test.hpp>
#include "detail/bmock_test_control_tools.hpp"

namespace bmock {
	static test_control_tools ctl;

	BOOST_AUTO_TEST_CASE(test_check_equal_string_OK) {
		const std::string exp = "ABCDEFG";
		const std::string act = exp; 
		const std::string msg = "Mock function (expected==call)";
		bool         result = true;

		BOOST_CHECK_NO_THROW(result = ctl.check_equal(exp,act,msg,location(__FILE__,__LINE__)));
		BOOST_CHECK(!result);
	}

	BOOST_AUTO_TEST_CASE(test_require_equal_size_t_OK) {
		const size_t exp = 10;
		const size_t act = exp; 
		const std::string msg = "InOut Raw Memory object 'name' length (expected==actual)";

		BOOST_CHECK_NO_THROW(ctl.require_equal(exp,act,msg,location(__FILE__,__LINE__)));
	}

	BOOST_AUTO_TEST_CASE(test_check_less_or_equal_OK) {
		const size_t exp = 10;
		const size_t act = 11; 
		const std::string msg = "Raw memory argument 'name': (expected max length <= actual max length)";
		bool         result = true;

		BOOST_CHECK_NO_THROW(result = ctl.check_less_or_equal(exp,act,msg,location(__FILE__,__LINE__)));
		BOOST_CHECK(!result);
	}
}